#ifndef INCLUDED_PLAYSTATE_H
#define INCLUDED_PLAYSTATE_H

#include "GameState.h"
#include "ChickenCase.h"
#include "ChickenCase2.h"
#include "CharacterIdle.h"
#include "Map.h"
#include "Egg.h"
#include "BadEgg.h"
#include "GoldEgg.h"

class PlayState : public GameState
{
public:
	PlayState(GameContext& gc);
	virtual ~PlayState(void);
	virtual void Load();
	virtual void Unload();
	virtual NextState Update(float deltaTime);
	void SpawnEgg(float deltaTime, const CharacterIdle& chicken, bool gold);
	void SpawnBadEgg(float deltaTime, const CharacterIdle& chicken);
	void SpawnGoldEgg(float deltaTime, const CharacterIdle& chicken);
	virtual void Render();
	void CheckCollision();
	void CheckCollision2();
	void CheckCollision3();

private:
	ChickenCase mCase;
	ChickenCase2 mCase2;
	std::vector<CharacterIdle> mChar;
	Map mMap;
	float spawnDelay;
	float spawnDelay2;
	float spawnDelay3;
	float Goldtimer;
	int Score;
	int Life;
	bool GoldGet;
	SGE_Font mFont;

	const int kMaxEgg;
	Egg mEgg[999];
	int EggIndex;

	const int kMaxCuckoo;
	SGE_Emitter Cuckoo[999];
	int CuckooIndex;

	const int kMaxBadEgg;
	BadEgg mBadEgg[3];
	int BadEggIndex;

	const int kMaxExplosion;
	SGE_Emitter Explosion[3];
	int ExplosionIndex;

	const int kMaxGoldEgg;
	GoldEgg mGoldEgg[1];
	int GoldEggIndex;

	const int kMaxBugle;
	SGE_Emitter Bugle[1];
	int BugleIndex;

};

#endif // #ifndef INCLUDED_PLAYSTATE_H